<?php 
require_once ENGINE . "smarty" . DS . "Smarty.class.php";

class View extends Smarty {
	
	// check template for modifications?
    public $compile_check = true;
	
	// caching enabled
    public $caching = false;
	
	// cache lifetime
    public $cache_lifetime = 360;
	
	// debug mode
    public $debugging = false;
	
	
	//Aqui vão as variáveis que eu coloquei a mais! =======================================
	
	public $data; 		//dados passados por $data do controller (só os helpers terão acesso)
	
	public $auth; 		//instância da classe que trata auths!
	
	public $debugger; 	//instância da classe de debug

	private $tempConfs; 	//array com configurações temporárias
	
	public $configs; 	//array com coisas à serem exibidas
	
	// ====================================================================================
	
	
	public function __construct()
    {
		parent::__construct();
        
		$this->template_dir = array(VIEWS, ENGINE . "views" . DS, VIEWS);
		$this->compile_dir = TEMP . 'tpl_compile' . DS;
		$this->plugins_dir = array(SMARTY_PLUGINS_DIR, ENGINE . "views/helpers/", APP_ROOT . "views/helpers/");
		$this->cache_dir = TEMP . 'cache' . DS;
		$this->config_dir = VIEWS . 'configs' . DS;
		$this->debug_tpl = 'file:' . ENGINE . "views" . DS . "debugs". DS . 'smarty.tpl';
		
		$this->debugger = $GLOBALS['debugger'];
	//	$this->auth = $GLOBALS['auth'];
		
		$tempConfs = array();
		
		//TODO transformar isso em config vars (ou algo próprio diferente de template vars comuns).
		$this->assign("_WEB_ROOT", WEB_ROOT);
		$this->assign("_CSS_ROOT", WEB_ROOT . "/css");
		
		$this->configs = array('description' => null, 'keywords' => null, 'pageTitle' => null);
	}
	
	public function loadConfigs()
	{
		foreach ($this->configs as $key => $value) {
			$this->assign('_' . $key, $value);
		}
	}
	
	public function setTemp($key, $value)
	{
		if ( isset($this->tempConfs[$key]) ) trigger_error("Essa variavel de configuração temporária da view já estava setada!!", E_USER_WARNING);
		$this->tempConfs[$key] = $value;
	}
	
	public function getTemp($key)
	{
		if ( isset($this->tempConfs[$key]) )
		{
			$return = $this->tempConfs[$key];
			unset($this->tempConfs[$key]);
			return $return;
		}
		else
		{
			return NULL;
		}		
	}
}
?>